package com.nyist.autoconfigure;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * 1. 配置文件与实体类对应类
 * // 参考地址:https://www.jianshu.com/p/025b8080b899
 * // https://www.yii666.com/blog/319859.html
 *  @Configuration  // 包含有 @Component 注解; 所有带有 @beam 标签的方法都会被动态代理, 因此所有调用该方法返回的都是同一个实例, single 单例模式 bean
 *  @Component      // 带有 @bean 注解的方法没有被代理. 所以每次请求都是一个新的实例 . prototype 原型模式 bean
 * @author yangxiaogen
 * @date 2023/3/21 16:52
 */
@Data // get/set/toString/hashCode等组合注解
@AllArgsConstructor // 全参构造函数
@NoArgsConstructor //无参构造函数
@Slf4j
// 参考地址: https://www.jianshu.com/p/025b8080b899
// https://www.yii666.com/blog/319859.html
@Configuration  // 包含有 @Component 注解; 所有带有 @beam 标签的方法都会被动态代理, 因此所有调用该方法返回的都是同一个实例, single 单例模式 bean
// @Component      // 带有 @bean 注解的方法没有被代理. 所以每次请求都是一个新的实例 . prototype 原型模式 bean
@ConfigurationProperties(prefix = "rocketmq.producer") // prefix 去掉通用的前缀, 只做最后剩余字段对应
// @PropertySource("classpath:application-dev.yml") // 默认去找 application.yml 或者 application.properties文件里面的内容可以不指定
public class RocketMQConfigProperties {

    private String group;

    private String topic;

    private Integer sendMessageTimeout;

}
